// 封装better scroll的基本使用
import BScroll from 'better-scroll'


export default function() {
	// better scroll实例，非单例模式
	let bscrollInstance
	
	// 默认配置
	const defaultOptions = {
		click: true, // 是否可点击
		passiveListeners: false, // 用来提升swiper在移动设备的中的scroll表现（Passive Event Listeners），但是会和e.preventDefault冲突，所以有时候你需要关掉它。
		touchAngle: 30, // 允许触发拖动的角度值。默认45度，即使触摸方向不是完全水平也能拖动slide。
		threshold: 12, // 拖动的临界值（单位为px），如果触摸距离小于该值滑块不会被拖动。
	}
   
	/**
	 * 初始化或刷新better scroll
	 * @param {*} selector 选择器，用于初始化better scroll ，支持原生dom选择器和vue的ref 
	 * @param {*} options 初始化配置信息，用于个性化配置，非必填项
	 * @returns better scroll实例对象
	 */
  const initOrRefreshBScroll = (selector, options ) => {
		if(!selector) {
			console.error('selector is necessary to init better-scroll instance. please check your parameter for using function initOrRefreshBScrll.')
			return
		}
     if(bscrollInstance) {
			 bscrollInstance.refresh()
			 return
		 }
		 bscrollInstance = new BScroll(selector, options ? options : defaultOptions)
		 return bscrollInstance
	}
	return {
		 initOrRefreshBScroll
	}
}